//---------------------------------------------------------------------------

#ifndef pvH
#define pvH

#include <gl\gl.h>
#include <gl\glu.h>
#include <math.h>
#include <fstream.h>
//---------------------------------------------------------------------------

class PV {

        private: GLdouble x,y;
                 bool esVector; //0 => vector; 1 => punto


        public:  PV(){};
                 PV(GLdouble x, GLdouble y, bool v);
                 PV * copiar();
                 inline GLdouble getX(){return x;};
                 inline GLdouble getY(){return y;};
                 inline bool getV(){return esVector;};
                 inline void setX(GLdouble a){x=a;};
                 inline void setY(GLdouble a){y=a;};
                 inline void setV(bool a){esVector=a;};
                 bool igual(PV * p);

                 void vectorDosPV(PV *p1, PV *p2);
                 PV *suma2(PV *v1, PV *v2);
                 void suma(PV *v1, PV *v2);
                 PV *resta(PV *v1, PV *v2);
                 void escalacion(GLdouble a);
                 PV *normalizacion();
                 GLdouble prodEscalar(PV *v1, PV *v2);
                 GLdouble angulo(PV *v1, PV *v2);
                 GLdouble modulo();
                 void calculaNormal();
                 void calculaNormalIzq();

                 bool guarda(ofstream & Archivo);
                 bool abre(ifstream & Archivo);
                 void rotaP(PV* centroRot, float ang);

};




#endif
